1. Field of the Invention
The present invention relates to the field of computer systems. More specifically, the present invention relates to the use of a host processor to control the execution of code on an auxiliary processor.
2. Background Information
Typical computer systems can contain a host processor and an auxiliary processor. In such systems, the host processor is used to control the operation of the auxiliary processor. These computer systems may have an application program and a driver program for execution on the host processor, as well as programs (herein referred to as "auxiliary processor programs") for execution on the auxiliary processor. To process data on the auxiliary processor, the application program interfaces with the driver program. In turn, the driver program interfaces with the auxiliary processor programs to provide for their execution.
In prior art versions of these computer systems, the auxiliary processor executes an execution control program which repeatedly causes the execution of code starting at three predetermined addresses in memory. To execute an auxiliary program, the auxiliary program must be written into the memory starting at one of these predetermined addresses. In this manner, the user may process data on the auxiliary processor using the auxiliary processor programs sold with the computer system or other auxiliary processor programs. However, this prior art method of executing auxiliary processor programs is difficult to use and allows for only limited programmability. In addition, this prior art employs a driver program designed specifically for the auxiliary processor being utilized. Thus, the driver program is not easily modified to support alternative hardware configurations or auxiliary processor upgrades. Finally, the prior art does not provide a means by which the auxiliary processor may notify the host processor upon the completion of a task.